                /*******************************************/
               /*                                         */
              /*              QIP INFIUM SDK             */
             /*          Copyright(c) Ilham Z.          */
            /*  mailto:ilham@qip.ru http://www.qip.im  */
           /*                                         */
          /*               C++ port by               */ 
         /*           Alexander Yastrebov           */
        /*     mailto:yastrebov.alex@gmail.com     */
       /*                                         */
      /*        C++ port was rewritten by        */
     /*     Mihaylov Andrey aka AbsoluteZero    */
    /*       Matafonov Steve aka BKnight       */
   /*    Kudryavtsev Mikhail aka Dr.Boom      */
  /*       Marynchuk Andrey aka Radist       */
 /*                                         */
/*******************************************/

#ifndef _QIP_U_COMMON__H___
#define _QIP_U_COMMON__H___

typedef unsigned char Boolean;

// Plugin specific options which will be saved in profile
typedef struct 
{
	union{
		struct{
			Boolean	Bool1;
			Boolean	Bool2;
			Boolean	Bool3;
			Boolean	Bool4;
			Boolean	Bool5;
			Boolean	Bool6;
			Boolean	Bool7;
			Boolean	Bool8;
			Boolean	Bool9;
			Boolean	Bool10;
		};
		Boolean		Bool[10];
	};

	union{
		struct{
			DWORD	Param1;
			DWORD	Param2;
			DWORD	Param3;
			DWORD	Param4;
			DWORD	Param5;
			DWORD	Param6;
			DWORD	Param7;
			DWORD	Param8;
			DWORD	Param9;
			DWORD	Param10;
		};
		DWORD		Param[10];
	};

	union{
		struct{
			BSTR	Wstr1;
			BSTR	Wstr2;
			BSTR	Wstr3;
			BSTR	Wstr4;
			BSTR	Wstr5;
			BSTR	Wstr6;
			BSTR	Wstr7;
			BSTR	Wstr8;
			BSTR	Wstr9;
			BSTR	Wstr10;
		};
		BSTR		Wstr[10];
	};
} PluginSpecific;

// Adding button below avatar in msg window
typedef struct
{
    HICON BtnIcon;      //size must be 16x16, if you creating new HICON then after adding button dont forget to destroy it in your plugin.
    long BtnPNG;        //size must be 16x16, LongInt(TPngObject) from PngImage library, delphi only. Else have to be 0. After adding button dont forget to destroy it in your plugin.
    BSTR BtnHint;       //hint of the button
    long BtnData;       //pointer of plugin specified data, will be returned on click. Since sdk 1.6.

} AddBtnInfo;

// plugins only
typedef struct
{
    long    BtnData; //pointer of plugin specified data. Since sdk 1.6.
    BOOL    RightClick; //in case if user right clicked on btn
} BtnClick;

//QIP Colors, delphi bgr
typedef struct
{
    long AccBtnText;
    long AccBtn;
    long AccBtnGrad;
    long AccBtnFrameL;
    long AccBtnFrameD;
    long Divider;
    long Group;
    long Counter;
    long Online;
    long Offline;
    long NotInList;
    long OffMsg;
    long Focus;
    long FocusGrad;
    long FocusFrame;
    long Hint;
    long HintGrad;
    long HintFrame;
    long IncEvents;
    long OutEvents;
    long FadeTitle;
    long FadeText;
    long TabBorder;
    long TabBorderDrk;
    long TabInactive;
    long TabInactGrad;
    long TabActive;
    long TabActGrad;
    long TabActLiTop;
    long TabActLight;
    long TabFontInact;
    long TabFontAct;
    long ChatTopic;
    long ChatTime;
    long ChatOwnNick;
    long ChatContNick;
    long ChatOwnText;
    long ChatContText;
    long ChatJoined;
    long ChatLeft;
    long ChatDiscon;
    long ChatNotice;
    long ChatHighLi;
    long ChatInfoText;
    long ChatActText;
	long ChatKickText;
    long ChatModeText;
    Boolean BgPicClOff;
    Boolean BgPicMsgOff;
    Boolean BgPicChatOff;
    long BgClColor;
    long BgMsgColor;
    long BgChatColor;
} QipColors;

#endif//_QIP_U_COMMON__H___
